// src/utils/wecomConfig.ts
import {configSignature} from "@/api/wechat.ts";
import {isWeChatBrowser} from "@/utils/wechatAuth.ts";
import {copyText} from "@/utils/copy.ts";
import wx from 'weixin-js-sdk';


// 获取签名配置的接口
const getConfigSignature = async () => {
    try {
        const response = await configSignature(window.location.href);
        return response.data;
    } catch (error) {
        console.error("Failed to get config signature:", error);
        throw new Error("Failed to get config signature");
    }
};

export const initWechat = async (title:string,desc:string,imgUrl:string) => {
    if(!isWeChatBrowser()){
        return
    }
    const config = await getConfigSignature();
    // 配置微信 JSSDK
    wx.config({
        // debug: true, // 调试模式，开启后会打印调试信息
        appId:config.appId,
        timestamp:config.timestamp,
        nonceStr:config.nonceStr,
        signature:config.signature,
        jsApiList:config.jsApiList // 需要使用的 API 列表
    });
    // 微信 JSSDK 配置完成后调用成功回调
    wx.ready(() => {
        console.log('微信 JSSDK 初始化成功');
        // 在这里可以调用微信 JSSDK 的方法
        //openLocation()
        //分享朋友
        wx.updateAppMessageShareData({
            title, // 分享标题
            desc, // 分享描述
            link: window.location.href,
            imgUrl,
            success: function () {
                // 用户点击了分享后执行的回调函数
                console.log("onMenuShareAppMessage成功")
            },
            cancel:function () {
                console.log("onMenuShareAppMessage取消")
            }
        });
        //分享到朋友圈
        wx.updateTimelineShareData({
            title, // 分享标题
            link: window.location.href,
            imgUrl, // 分享图标
            success: function () {
                // 用户点击了分享后执行的回调函数
                console.log("updateTimelineShareData成功")
            },
            cancel:function () {
                console.log("updateTimelineShareData取消")
            }
        });

    });

    // 微信 JSSDK 配置失败时调用失败回调
    wx.error((res: any) => {
        console.error('微信 JSSDK 初始化失败', res);
    });
};

// 打开地理位置示例
export const openLocation = (location:object) => {
    console.log(location)
    if(!isWeChatBrowser()){
        copyText('北京市东城区天安门广场')
        return
    }
    wx.openLocation({
        latitude: 39.908823,
        longitude: 116.397470,
        name: '北京天安门',
        address: '北京市东城区天安门广场',
        scale: 14,
        infoUrl: 'https://www.baidu.com'
    });
};

export const getLocation = () => {
    if(!isWeChatBrowser()){
        return
    }
    wx.getLocation({
        type: 'wgs84', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
        success: function (res) {
            console.log(res)
        }
    });
};